package com.efamily.ewallet.client.account.service;

import java.util.List;

import com.efamily.ewallet.client.account.bean.AccountBean;
import com.efamily.ewallet.client.account.bean.AccountSearchConfig;
import com.efamily.ewallet.client.common.DefaultAsyncCallback;
import com.efamily.ewallet.client.common.bean.UserBean;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface AccountManagerServiceAsync {
	public final AccountManagerServiceAsync instance = GWT
			.create(AccountManagerService.class);

	void getCountriesList(AsyncCallback<List<String>> callback);

	void createAccount(AccountBean accountBean, String password, String mail,
			AsyncCallback<Void> callback);

	void verifyNickName(String nickName, AsyncCallback<Boolean> callback);

	void getPublicAccountList(AccountSearchConfig searchConfig,
			PagingLoadConfig config,
			AsyncCallback<PagingLoadResult<AccountBean>> callback);

	void deleteAccounts(List<Integer> accountsID,
			AsyncCallback<Boolean> callback);


}
